package com.shihb.principle.inversion.olddemo;/**
 *Description:依赖倒置
 *Version:1.0.0
 *@author shihb
 *@date 2020/6/28 20:06
 */
public class OldDemo {

  public static void main(String[] args) {
    new Person().receive(new Email());
  }

}
class  Email{
  public String getInfo(){
    return "电子邮件信息:hello world";
  }
}
/**
 * 接收者
 * 优势：简单，容易实现
 * 问题: 如果是获取微信，短信等，则要新增类，同时Person也要增加相应的接收方法
 * 解决思路：引入一个抽象接口IReceiver,表示接收者，这样Persion与该接口依赖
 * 以为Email,微信短信等等都是接收的范围，他们各自实现IReceiver即可，这样就实现了依赖倒置原则
 */
class Person{
  public void receive(Email e){
    System.out.println(e.getInfo());
  }
}
